Methods and apparatus to perform image analyses in a computing environment

ABSTRACT

An example apparatus includes a feature extractor to generate a first image descriptor based on a first image of a first retail product tag corresponding to a first category, the first image descriptor representative of one or more visual features of the first retail product tag; a feature descriptor generator to generate a feature descriptor corresponding to the first retail product tag by concatenating the first image descriptor and a first category signature corresponding to the first retailer category; and a classifier to generate a first probability value corresponding to a first type of promotional product tag and a second probability value corresponding to a second type of promotional product tag based on the feature descriptor; and determine whether the first retail product tag corresponds to the first type of promotional product tag or the second type of promotional product tag based on the first and second probability values.

RELATED APPLICATION

This patent arises from a continuation-in-part of PCT Patent ApplicationNo. PCT/IB2018/001433, which was filed on Nov. 13, 2018. PCT PatentApplication No. PCT/IB2018/001433 is hereby incorporated herein byreference in its entirety.

FIELD OF THE DISCLOSURE

This disclosure relates generally to computing systems, and, moreparticularly, to methods and apparatus to perform image analyses in acomputing environment.

BACKGROUND

Image recognition involves computer-aided techniques to analyze picturesor photographs to determine and/or identify the content of the capturedscene (e.g., the recognition of the general subject matter of the sceneand/or the recognition of individual objects within the scene). Suchtechniques are useful in different applications across differentindustries. For example, retail establishments, product manufacturers,and other business establishments may take advantage of imagerecognition techniques of photographs of such establishments (e.g.,pictures of product shelving) to identify quantities and/or types ofproducts in inventory, to identify shelves that need to be restockedand/or the frequency with which products need restocking, to recognizeand read product barcodes, to assess product arrangements and displays,etc.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram of an example apparatus in training mode totrain a convolutional neural network (CNN) to classify retail producttags using a category signature.

FIG. 1B is an example Gaussian probability density function (PDF).

FIG. 2 is a block diagram of the example apparatus of FIG. 1A operatingin a recognition mode to classify retail product tags using the trainingCNN and the category signature.

FIGS. 3A and 3B depict a flowchart representative of machine readableinstructions which may be executed to implement the example apparatus ofFIGS. 1A and 2 to operate in the training mode.

FIGS. 4A and 4B depict flowcharts representative of machine readableinstructions which may be executed to implement the example apparatus ofFIGS. 1A and 2 to train the CNN in the recognition mode of FIG. 1.

FIG. 5 is a block diagram of an example processing platform structuredto execute the instructions of FIGS. 3A, 3B, 4A, and 4B to implement theexample apparatus of FIGS. 1A and 2 to train a CNN and classify retailproduct tags using the trained CNN and a category signature.

The figures are not to scale. Wherever possible, the same referencenumbers will be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts.

DETAILED DESCRIPTION

In the retail industry, retailers use different types of retail producttags to emphasize or advertise different pricing models for differenttypes of promotions. Across retailers, various different looking retailproduct tags may be used for the same type of promotion. For example, afirst retailer could create a “two for one” retail product tag that isvisibly different (e.g., different color, different type font, differentlogos, different information, different arrangement of information,etc.) from a “two for one” retail product tag of a second retailer.

When performing retail audits or market analyses for product placementsand sales, sorting and categorizing different retail product tags bypromotion type and retailer can be performed through human visualinspection using cognitive recognition of persons and human intuition.Such a human-based process is time-consuming and error-prone due toinconsistencies across different human auditors and/or inconsistenciesof a same human auditor over time. However, computerizing such a processto recognize different retail product tags of different promotion typesand across multiple retailers presents significant challenges.

Retailer market studies can use deep learning techniques as a way todetect and classify promotions associated with their products. In priordeep learning techniques, a single convolutional neural network (CNN) istrained and utilized specifically for use with a respective retailer todetect or classify retail product tags corresponding to that retailer.However, this is not an easily scalable solution or a solution that iseasily updatable or maintained across multiple retailers. For example, achallenge arises when a second retailer or more retailers are introducedinto a market study because a second CNN or more CNNs need to be trainedfor the second or more retailer categories. As more retailers are added,more CNNs are needed to be trained and maintained. This requires asignificant amount of time, supervision, and expertise. In other priordeep learning techniques, a single CNN is trained and utilized for usewith two or more respective retailers to detect or classify retailproduct tags corresponding to the two or more retailers. Challengesarise when there is interference (e.g., similar appearance) betweenretail product tags of different retailers. For example, a firstretailer may have a multi-buy retail product tag image that is ofsimilar appearance to a price reduction retail product tag image of asecond retailer. In this example, the CNN fails to properly classify theretailer product tag image of the first retailer due to the interference(e.g., similar appearance) with the retail product tag image of thesecond retailer.

As used herein, a categorical entity, a retailer category, or a categoryrefers to a retailer that sells goods and/or services. Categoricalentity, retailer category, retailer, and category are usedinterchangeably throughout. In examples disclosed herein, a categoricalentity, retailer category, and/or category is, but not limited to, achain of stores owned by a same business entity (e.g., Gap Inc., BananaRepublic LLC, Old Navy LLC, Athleta Inc. and Intermix LLC), a singlestore (e.g., a small family owned business such as a mom and pop shop),and/or sub-category stores of large retailers such as a big box store, abig box store express, a Best Buy® store, a Best Buy® Mobile store, aTarget® store, a Super Target® store, a Walmart® store, a WalmartExpress store, etc.

Examples disclosed herein overcome the above-mentioned challenges andother challenges by using multi-class classification models in which thefinal classes (e.g., types of promotions) of retail product tags to berecognized are classified within their own retailer categories. Forexample, when identifying a type of promotion of a retail product tag ofa retailer, examples disclosed herein differentiate between differentretailer categories of the retail product tag using respective categorysignatures generated for corresponding ones of the retailer categories.For example, retailer categories are used to train the CNN so thatduring a recognition phase, the CNN can differentiate between retailerproduct tags of different retailer categories. Examples disclosedincorporate the retailer category information into the CNN process byassociating the unique category signatures to corresponding retailersbased on retailer identifiers or retailer metadata in retailer producttags.

In examples disclosed herein, a category signature corresponding to anexample retailer category is provided to a CNN to classify input data.In examples disclosed herein, a category signature is a layer ofinformation that is unique for each retailer category. The categorysignature identifies a category/categorical entity of a product tag. Insome examples, the category signature is a value having a particular bitlength and could be implemented as a vector, a one-dimensional array offloat values (e.g., floating-point numbers) etc., that is added,augmented, appended, or combined with an image descriptor of a retailproduct tag to form a feature descriptor that is analyzed and classifiedby a classifier of the CNN.

Examples disclosed herein facilitate the aggregating of categoryinformation in a CNN while reducing complexity associated with CNN-baseddetection and/or classification of retail product tags across multipleretailers. For example, techniques disclosed herein facilitate traininga CNN using category signatures corresponding to different categoricalentities. By using category signatures for different categoricalentities, examples disclosed herein use a single CNN to detect and/orclassify retail product tags by promotional type from the differentcategorical entities. That is, the single CNN is trained todifferentiate retail product tags from different retailers based on thecategory signatures of those retailers.

In examples disclosed herein, a CNN is a network of interconnectedneurons (e.g., nodes) arranged or connected to one another inconfigurations that enable analyzing input data (e.g., image data) togenerate different probabilities indicative of likelihoods thatdifferent features are present in that input data. In examples disclosedherein, a CNN is provided input image data representative of retailproduct tags from different categorical entities, and the CNN generatesprobability values indicative of the likelihoods of the presence offeatures that correspond to different retail product tags of thecategorical entities.

The category corresponding to a product tag (e.g., input data) may beidentified by a CNN from metadata located in an image or an image fileof a product tag. In examples disclosed herein, metadata is data (e.g.,information) that provides information about other data (e.g., a retailproduct tag). In some examples, metadata of a retail product tag imageincludes a description, an identifier, camera details such as shutterspeed, focal depth, etc., keywords related to the image such ascaptions, titles, comments, etc., and administrative information such aslicensing rights, restrictions on use, etc. In examples disclosedherein, metadata includes a category identifier that identifies acorresponding retailer of a retail product tag. In some examples, thecategory identifier is geographic location coordinate information of aretail store provided by an image capturing device when capturing imagesof retail product tags. In such examples, the geographical locationinformation could be used as an identifier of a particular retailer. Inother examples, the category identifier could be a value provided to animage capturing device via, for example, user input, scanning a barcode,etc. when capturing images of retail product tags.

A CNN analyzes input image data to generate probability valuesindicative of likelihoods that input image data corresponds to differenttypes of retail product tags. In examples disclosed herein, a type ofretail product tag is a product tag for a particular type of promotionof a corresponding product. One type of promotion is a multi-buypromotion (e.g., “Buy two get one free”, “Get two for the price of one”,“Buy three for $6”, etc.). A second type of promotion is a pricereduction promotion (e.g., “50% off all produce items”, “All items are20% off original price”, “25% OFF”, etc.). Examples disclosed herein mayalso be employed with other types of promotions.

FIGS. 1A and 2 illustrate an example apparatus 100 that employs a CNN102 to classify retail product tags corresponding to differentcategorical entities. In FIG. 1A, the example apparatus 100 is shown ina training mode of a training phase in which category signatures aregenerated and the CNN 102 is trained to recognize and classifypromotional product tags of different retailers using such categorysignatures. In FIG. 2, the apparatus 100 is shown in a recognition modeof a recognition phase in which the apparatus 100 utilizes categorysignatures generated during the training mode of FIG. 1A to analyzeinput image data of retail product tags and to classify the input imagedata as representative of types of promotions of different retailers.

Turning to FIG. 1A, the example CNN 102 includes a neural network thatanalyzes input images and learns system responses corresponding todifferent features in such input images. An input image is a matrix ofpixel values that define different colors to collectively represent avisual depiction of a subject. The example CNN 102 has four mainoperations to analyze the matrix of pixel values. The example operationsinclude a convolution operation, non-linearity operation, a pooling orsub-sampling operation, and a classification operation. The convolutionoperation extracts features via a filter, from the input image. Thefilter is a weighted matrix used to analyze the input image matrix.Examples of extracted features include a rounded edge, a circle, acolor, etc. The extracted features of the input image are sent to thenon-linearity operation of the CNN 102. The non-linearity operationconverts the extracted features into a non-linear matrix by replacingnegative pixel values with a zero. After the extracted features arenon-linearized, the pooling operation samples the extracted features toreduce the dimension of the matrices. The final reduced matrices arethen sent to the classification operation of the CNN 102. At theclassification operation, the reduced matrices are used to estimateprobabilities for the input image. The probabilities correspond tolikely classifications of the input image.

In some examples, the filters and operations in a CNN 102 are toidentify the most important regions of the input image (e.g., the CNN102 determines the most discriminative features of the input image thatmake it unique and distinct from the other input images). For example,if the CNN 102 is to classify Coca-Cola® drink label and a Pepsi® drinklabel. The example CNN 102 will determine the red color of theCoca-Cola® drink label is a significant feature and therefore the imagedescriptor of a Coca-Cola® drink label will contain information relatedto the red color. This is achieved by using filters that get activatedin regions with red color. In some examples, there are a plurality offilters, and each filter is to determine different features of the image(e.g., a filter may activate when there is a face, another filteractivates when there is a screen, etc.). Eventually, all the informationis compacted using a sub-sampling operation, leading to a detaileddescription of the image (represented by an image descriptor whichrepresents different features in the input image).

In the example training mode of FIG. 1A, the CNN 102 is trained based onmultiple retail product tag images per retailer category to classifyeach retail product tag image correctly according to correspondingproduct promotion type. The example CNN 102 of the apparatus 100includes an example feature extractor 106 and an example classifier 122.The example apparatus 100 further includes an example retail product tagimage database 104, an example image descriptor database 110, an exampleseed generator 112, an example category signature generator 114, anexample feature descriptor generator 118, an example retailer IDextractor 126, an example category signature mapper 130, and an examplecategory signature database 132.

In the illustrated example, the example apparatus 100 is provided withthe feature extractor 106 to obtain retail product tag images from theretail product tag image database 104. The example feature extractor 106analyzes the images received from the retail product tag image database104 and extracts particular features of the retail product tag imagethat make it different relative to a different retail product tag image.For example, the example feature extractor 106 uses the convolution,non-linearity operations, and pooling, discussed above. The convolutionlayer includes a set of filters that convolve over the retail producttag image. The filters are weighted matrices in which the weights in thematrices, originally based on pre-determined values, are adjusted in thetraining mode during backpropagation of the classification operation ofthe example apparatus 100. The matrices include specified pixel valuesto extract the particular features of the retail product tag image(e.g., a rounded edge, a color, a character, a logo, etc.) of the targetretailer category under analysis. For example, the received retailproduct tag image may be a [5×5] matrix of pixels arranged in an orderthat describes the shape, color, size, etc. of the retail product tagimage. The example filter may be a [3×3] weighted matrix that convolves(e.g., slides) across the width and the height of the input retailproduct tag image so that all pixels of the input image are processed atleast once (e.g., by one pixel) by the filter. During convolution, thefilter generates an output matrix that includes rows and columns ofelements (e.g., matrix values) corresponding to pixels of the inputimage. In the example, the feature extractor 106 computes each elementof the output matrix for a corresponding position of the filter duringconvolution. When the feature extractor 106 applies the example [3×3]filter to the input retail product tag image, the filter processes a[3×3] section of the input retail product tag image pixel values. Thepre-determined pixel values of the [3×3] filter and the pixel values ofthe input image section that is processed is multiplied and the totalnumber added to produce a single element of the processed section. Inthis manner, the feature extractor 106 generates an output of the finalproduct as a [3×3] matrix of the computed elements of the processedsection of the input image. In some examples, the feature extractor 106includes filters with a plurality of different weighted matrices toextract a plurality of different features of the input image.

In some examples, the pooling layer processes the input data after thenon-linearity and convolution layer. The example feature extractor 106uses the pooling layer to downsample the final computed matrices of theretail product tag image to reduce the spatial size of the image. Forexample, if there were ten [3×3] filters applied to the [5×5] targetretail product tag image, there would be ten [3×3] output products ofthe retail product tag image. The feature extractor 106 usesdownsampling to reduce the size of the output products of the retailproduct image for processing, while maintaining the pertinentinformation regarding the input images in each output product. In someexamples, the feature extractor 106 uses max pooling, average pooling,or L2 pooling techniques to downsample.

The example feature extractor 106 generates the example image descriptor108 after the pooling operation described above. An image descriptor 108is a compact representation of the retail product tag image thatincludes feature values corresponding to the strengths of featuresdetected in the retail product tag image. In the illustrated example,the feature extractor 106 transforms the input image to aone-dimensional array to form the length of the image descriptor 108. Asused herein, the length of the image descriptor 108 is a one-dimensionalarray of size m, where m represents a number of feature values forcorresponding features evaluated in an input retail product tag image.An example size m of the image descriptor 108 may be 0.4, 0.2, 00.03,etc. For example, the length of the image descriptor 108 depends on thesize of the retail product tag image in pixels and the architecture ofthe CNN 102. In some examples, the size of the retail product tag imageis fixed (e.g., the retail product tag images are rescaled to a size of20×20 pixels). As used herein, the architecture of the example CNN 102is defined as the types of techniques used in three of the four mainoperations of the CNN 102 (e.g., the convolution operation, thenon-linearity operation, and the pooling or sub-sampling operation) todefine the final length of the example image descriptor 108. Forexamples in which a retail product tag image is a size of [20×20] pixelsand the architecture of the CNN 102 includes two sub-samplingoperations, each sub-sampling operation to reduce the size of the imageby half. In this example, the first sub-sampling operation sub-samplesand reduces the retail product tag image of [20×20] pixels to [10×10]pixels, and the second sub-sampling operation reduces the retail producttag image of [10×10] pixels to [5×5] pixels. The example imagedescriptor 108 is flattened to a length of an array of [1×25]. As usedherein, flattening a matrix is defined as multiplying the number of rowsby the number of columns. In the illustrated example 100, the featureextractor 106 stores the image descriptor 108 in the image descriptordatabase 110. For example, if the example feature extractor 106 receives1000 images, it will generate 1000 image descriptors and 1000×m valuesand store the 1000 image descriptors in the image descriptor database110.

The example apparatus 100 is provided with the example retailer IDextractor 126 to extract retail product tag metadata from input imagedata (e.g., retail product tag images) stored in the retail product tagimage database 104. The metadata of the retail product tag imageidentifies the retailer category of the retail product tag image. Theexample retailer ID extractor 126 stores the extracted metadata as theretailer ID 128 for the retailer category of the retail product tagimage in the image descriptor database 110.

The example image descriptor database 110 stores all computed imagedescriptors in association with corresponding retailer IDs 128 providedby the example retailer ID extractor 126. The example image descriptordatabase 110 notifies the example seed generator 112 when the examplefeature extractor 106 computes image descriptors for one or moreavailable retail product tag images of one or more retailer categories.

The example apparatus 100 is provided with the example seed generator112 to generate a random seed per category for subsequent use by thecategory signature generator 114 to generate a Gaussian probabilitydistribution function (PDF) of image descriptors 108 for a correspondingcategory. As described below, the category signature generator 114 usesthe Gaussian PDF to generate a category signature 116 for that category.The example seed generator 112 could be implemented by a random-numbergenerator or a pseudo-random number generator to generate unique randomseeds for each category so that unique category signatures 116 can begenerated for each category. For example, the seed generator 112 usesthe retailer ID 128 to seed the random-number generator or pseudo-randomnumber generator which generates a seed that corresponds to the retailerID 128 of a corresponding retailer category. In some examples, the seedgenerator 112 may not employ a random or pseudo random number generatorand instead generate the seed as a replication of the retailer ID 128.The example seed generator 112 stores the unique seed in a memory (e.g.,in the image descriptor database 110 and/or the category signaturedatabase 132). In this manner, the category signature generator 114 canuse the stored seed at any subsequent time to re-generate the categorysignature 116 for the corresponding category should the categorysignature 116 be lost or destroyed.

The example apparatus 100 is provided with the category signaturegenerator 114 to generate category signatures 116 based on seedsgenerated by the seed generator 112 and image descriptors 108. Forexample, for a retailer category, the category signature generator 114obtains multiple image descriptors 108 from the image descriptordatabase 110 to generate a Gaussian probability density function (PDF)140 based on the multiple image descriptors 108. As used herein, a PDFis a distribution of probabilities of occurrence of different detectedvisual features across multiple retail product tag images for aparticular category. For example, the feature extractor 106 computes1000 image descriptors 108 and 1000×m values for 1000 retail product tagimages of a first retailer category. Each image descriptor 108 includesa matrix of pixels of a particular size with which to determine theunique features of the retail product tag images. The example categorysignature generator 114 generates a Gaussian PDF 140 based on theprobabilities that multiple features are detected in the input imagesfor the retailer category. The Gaussian distribution generated by thecategory signature generator 114 estimates the mean and variance of themagnitudes of the PDF. For example, the Gaussian distribution is abell-shaped curve that is symmetric about the mean of the PDF andobtains its maximum value (e.g., the value on the x-axis that is closestto the probability of 1).

Referring to FIG. 1B, an example Gaussian PDF 140 is shown of aprobability distribution generated by the example category signaturegenerator 114. In the example Gaussian PDF 140, the x-axis representspositions (m) of probability values that represent different features ininput data (e.g., retail product tag images). The y-axis of the exampleGaussian PDF 140 represents probabilities “P(x)” (from 0 to 1.0) thateach feature “x=m” is present in the input data. The example GaussianPDF 140 shows multiple samples S₁-S_(n) of features corresponding todifferent probabilities P(x) on the Gaussian PDF 140. For example, eachsample S_(n) is a numeric value (e.g., a bit value) representing acorresponding feature x in the input data.

The category signature generator 114 generates the category signature116 by sampling the Gaussian PDF 140 to obtain a quantity of n samplesS_(n) for use to generate the category signature 116. In some examples,the category signature generator 114 draws the n samples from theGaussian PDF 140 (e.g., selects ones of the positions of the probabilityvalues of the Gaussian PDF 140) from a range or group of features havingthe highest probabilities of occurrence. For example, S₁ 144, S₂ 146,and S_(n) 148 are all example samples corresponding to features m havinghighest probabilities of occurring in the retail product tag of aretailer category. In this example, n represents a number of samplesequal to the length of the category signature 116. For example, thecategory signature 116 may be a [1×25] matrix of samples, in which the“25” in the matrix represents the length or quantity n of samples.

Referring again to FIG. 1A, since the input data is a group of imagedescriptors 108 from the image descriptor database 110 for retailproduct tag images of the same retailer category, the Gaussian PDF 140of the image descriptors 108 will be in the same numeric range as thefeature values of each individual image descriptor 108 for the sameretailer category. In addition, the resulting category signature 116based on the Gaussian PDF 140 is in the same numeric range as the imagedescriptors 108 of retail product tags for the same retail category.

In the illustrated example, the example category signature generator 114provides the category signature 116 to the feature descriptor generator118. In the illustrated example, the feature descriptor generator 118obtains the image descriptor 108 of the same retailer category from theexample feature extractor 106 and/or the example image descriptordatabase 110. The example feature descriptor generator 118 generates afeature descriptor 120 based on the image descriptor 108 and thecategory signature 116. For example, the feature descriptor generator118 concatenates the matrix (e.g., a [1×25] matrix) that forms the imagedescriptor 108 and the matrix (e.g., a [1×25] matrix) that forms thecategory signature 116. In this manner, the feature descriptor 120 istwice the length (e.g., a [1×50] matrix) of the image descriptor 108.

As described above, the numeric range of values in the categorysignature 116 is the same range as values in the image descriptor 108.Keeping the values in the category signature 116 and the values in theimage descriptor 108 in the same numeric range is useful to facilitatethe classifier 122 to properly process the resulting feature descriptor120. That is, values for the example category signature 116 that are notcommensurate in numeric range with the values of the image descriptor108 decreases the accuracy of the CNN 102. For example, the recognitionsensitivity of the CNN 102 to features in the numeric range of values inthe image descriptor 108 is decreased if the values of the categorysignature 116 are outside that numeric range because the filters of thefeature extractor 106 would need to adapt to process the larger ofnumeric values of the category signature 116, thereby decreasing thesensitivity of the CNN 102 to the features of a retail product tag imagerepresented by values of a smaller numeric range.

The apparatus 100 is provided with the example classifier 122 toclassify the provided feature descriptor 120 (e.g., determines outputprobabilities of feature descriptors 120 for different classes). Duringtraining, the example classifier 122 generates multiple outputs overmultiple iterations until the feature recognition of the classifier 122improves such that the output of the classifier 122 is acceptable incorrectly classifying input images of retail product tags. For example,the classifier 122 illustrated in the CNN 102 may initially outputunacceptable probabilities for two classes (e.g., promotional producttag types such as a multi-buy promotional product tag, a price reductionpromotional product tag, etc.) of the feature descriptor 120 at thebeginning of a training phase. After multiple training iterations andbackpropagation (e.g., corrective feedback) based on the one or moretraining retail product tag images, the example classifier 122 outputsprobabilities of promotional product tag types that are acceptable. Analgorithm is used to calculate the total error at the output of theclassifier 122 (e.g., a summation over the two classes). Backpropagationis then used to calculate gradients of the error with respect to allweights (e.g., the filters used during the convolution operation) in theCNN in training mode 102. After backpropagation of the outputprobabilities, the weights in the filters of the feature extractor 106are adjusted (e.g., the [3×3] matrix of pixel values that represent afilter of the feature extractor 106 may be rearranged, adjusted,removed, etc.) to help better predict the class of the featuredescriptor 120.

The apparatus 100 is provided with the example category signature mapper130 to map the retailer ID 128 of a retailer category with the categorysignature 116 for that retailer category. For example, the categorysignature mapper 130 stores the category signature 116 in associationwith the retailer ID 128 (e.g., in a same mapping record in the examplecategory signature database 132) to establish a correspondence betweenthe two items of information.

The apparatus 100 is provided with the example category signaturedatabase 132 to store the category signatures that are mapped with theircorresponding retailer IDs. For example, the category signature mapper130 may provide the mapped category signature 116 and retailer ID 128 tothe category signature database 132 for storing in a correspondingmapping record.

FIG. 2 is a block diagram of the example apparatus 100 of FIG. 1Aoperating in a recognition mode. The example apparatus 100 of FIG. 2 maybe implemented using the CNN 102 after the training mode of FIG. 1. Inthe recognition mode of FIG. 2, the CNN 102 classifies a retail producttag.

In some examples, during the recognition mode, the CNN 102 is used toclassify retail product tags in real time as images of these producttags are captured by a device (e.g., a mobile phone, a tablet device, adigital still camera, etc.). In other examples, the CNN 102 is used toclassify retail product tags during a post process during some latertime after multiple images of multiple retail product tags have beencaptured and stored. In any case, the CNN 102 may be implemented by thesame device that captured the images or by a separate device thatobtains the images from the capture device. In the example recognitionmode of FIG. 2, the CNN 100 has been trained to classify input retailproduct tag images from a plurality of retailer categories and outputprobability values indicative of the input retail product tag imagescorresponding to different types of retail product tags. The exampleapparatus 100 includes the example feature extractor 106, the exampleretailer ID extractor 126, the example category signature database 132,the example feature descriptor generator 118, and the example classifier122. In the illustrated example, the apparatus 100 generates an examplefirst output probability value 210 from zero to one (e.g., one being thehighest likelihood) that an input retail product tag corresponds to afirst type of promotional product tag. The example apparatus 100 alsogenerates an example output probability 212 value that represents alikelihood from zero to one (e.g., one being the highest likelihood)that an input retail product tag corresponds to a second type of retailproduct tag.

The apparatus 100 of FIG. 2 is provided with the example retailercategories 202. The retailer categories 202 may be identified in imagesbased on retailer category metadata (e.g., data and/or information thatcan be used to identify a retailer category). The example retailercategories 202 are identified by their fill type (e.g., slanted lines,checkered lines, diamond shaped lines, etc.). For example, the slantedlines of retailer category 1 may represent the metadata of a largecorporate department store, the checkered lines of retailer category 2may represent the metadata of a mom and pop shop, the diamond shapedlines may represent the metadata of a chain of stores owned by a samebusiness entity, etc.

The example apparatus 100 in the recognition mode of FIG. 2 begins whenthe example apparatus 100 obtains a retail product tag image 204 fromthe retail product tag image database 104. In the recognition mode ofFIG. 2, the apparatus 100 is to determine whether the retail product tagimage 204 corresponds to a first type of retail product tag or a secondtype of retail product tag. In the illustrated example of FIG. 2, theapparatus 100 processes a retail product tag image from category 1.However, the same techniques disclosed may be used to classify producttag images from any category.

The apparatus 100 is provided with the example retailer ID extractor 126to retrieve the retailer ID (e.g., the retailer ID 128 of FIG. 1) frommetadata of the retail product tag image 204. The example apparatus 100is also provided with the category signature database 132 to provide thecategory signatures for the retailer categories (e.g., the categorysignature 116 generated in the apparatus 100 in training mode of FIG.1). For example, the retailer ID extractor 126 may provide the retailerID 128 corresponding to the retail product tag image 204 to the categorysignature database 132. The example category signature database 132 mayuse the retailer ID 128 to scan a lookup table in the category signaturedatabase 132 that has mapped a category signature with the retailer ID128.

The apparatus 100 is provided with the example feature extractor 106 togenerate an image descriptor 216 representative of the retail producttag image 204. The image descriptor 216 includes feature valuescorresponding to the strengths of features detected in the retailproduct tag image 204. The image descriptor 216 is similar in structureto the image descriptor 108 of FIG. 1. In some examples, the featureextractor 106 analyzes the retail product tag image 204 and extractsparticular features of the image 204 that, for example, differ fromfeatures of a different retail category product tag image of the same ordifferent retailer category. Example operations of the feature extractor106 to generate the example image descriptor 216 are described above inconnection with FIG. 1. The feature extractor 106 of FIG. 2 utilizesfilters that are weighted to allow the example classifier 122 togenerate probability values indicative of likelihoods of different typesof retail product tags. For example, the feature extractor 106 maygenerate an image descriptor 216 using filters of the same size (e.g., a[3×3] filter) but with different pixel values corresponding to theretail product tag image 204. As described in the above examples and tofacilitate further description of the disclosed examples, the exampleimage descriptor 216 of FIG. 2 is referred to as a one dimensional arrayof size [1×10].

The apparatus 100 is provided with the example feature descriptorgenerator 118 to generate a feature descriptor 218 corresponding to theretail product tag image 204 of a retailer category by concatenating theimage descriptor 216 and the category signature 116. For example, thefeature descriptor generator 118 obtains the category signature 116 ofthe retailer corresponding to the retail product tag image 204 from thecategory signature database 132 and obtains the image descriptor 216 ofthe retail product tag image 204 from the feature extractor 106. In theillustrated example, the example category signature database 132provides the category signature 116 to the example feature descriptorgenerator 118 when it has determined the category signature 116corresponding to the retailer ID 128 from the retailer ID extractor 126that was mapped and stored by the category signature mapper 130 of theapparatus 100 of FIG. 1. In the illustrated example, the featuredescriptor 218 is similar in structure to the feature descriptor 120 ofFIG. 1.

In the illustrated example, the feature descriptor generator 118generates the feature descriptor 218 to be twice the bit length of theimage descriptor 216. For example, the image descriptor 216 is an arrayof size [1×25] and the example category signature 116 associated withthe category of the image descriptor 108 is also an array of size[1×25]. The example feature descriptor generator 118 concatenates thetwo arrays corresponding to the image descriptor 216 and the categorysignature 116 to generate the feature descriptor 218. The resultingfeature descriptor 218 is a size [1×50].

The example feature descriptor 218 includes data to facilitate properlyclassifying the retail product tag image 204 by the classifier 122 intoa correct class type of retail product tag. The example classifier 122receives the feature descriptor 218 and outputs a probability valueindicative of a class corresponding to the retail product tag image 204.

The example classifier 122 is a non-linear model. The example classifier122 uses a logistic regression with cost functions to generate thenon-linear model. That is, the classifier 122 uses such logisticregression with cost functions to classify the example featuredescriptor 218. Logistic regression is a classification algorithm usedto assign observations to a discrete set of classes. Logistic regressiontransforms its output using the logistic sigmoid function to return aprobability value which can then be mapped to two or more discreteclasses. The logistic sigmoid function is a mathematical function thathas an input of a real value and outputs another value between 0 and 1,and the output function is non-linear. In some examples, the classifier122 utilizes this function because the output probability needs to bebetween 0 and 1. In the illustrated example of FIG. 2, the outputprobability value 210 that the retail product tag image 204 is a firsttype of retail product tag is 0.81 and the probability value 212 thatthe retail product tag image 204 is a second type of retail product tagis 0.19. Therefore, it is more likely that the class of the retailproduct tag image 204 is a first type of retail product tag, because theoutput probability of 0.81 is closer to 1 than the output probability of0.19 of the example second type of retail product tag.

The apparatus 100 is provided with the example report generator 222 togenerate a report based on the classification results provided by theoutput probability values 210 and 212. For example, the report generator222 displays the report to a user, uses the report to determine theprice of a product requested by a customer, updates the product pricesin a retailer sore and/or website, etc. In some examples, the reportgenerator 222 may be a separate entity of the CNN 102, a computerprocess, etc.

While an example manner of implementing the apparatus 100 of FIG. 1A isillustrated in FIGS. 1A and 2, one or more of the elements, processesand/or devices illustrated in FIGS. 1A and 2 may be combined, divided,re-arranged, omitted, eliminated and/or implemented in any other way.Further, the example CNN 102, the example retail product tag imagedatabase 104, the example feature extractor 106, the example imagedescriptor database 110, the example seed generator 112, the examplecategory signature generator 114, the example feature descriptorgenerator 118, the example classifier 122, the example retailer IDextractor 126, the example category signature mapper 130, the examplecategory signature database 132, and/or, more generally, the exampleapparatus 100 of FIGS. 1A and 2 may be implemented by hardware,software, firmware and/or any combination of hardware, software and/orfirmware. Thus, for example, any of the example CNN 102, the exampleretail product tag image database 104, the example feature extractor106, the example image descriptor database 110, the example seedgenerator 112, the example category signature generator 114, the examplefeature descriptor generator 118, the example classifier 122, theexample retailer ID extractor 126, the example category signature mapper130, the example category signature database 132 and/or, more generally,the example apparatus 100 could be implemented by one or more analog ordigital circuit(s), logic circuits, programmable processor(s),programmable controller(s), graphics processing unit(s) (GPU(s)), tensorprocessing unit(s) (TPU(s)), digital signal processor(s) (DSP(s)),application specific integrated circuit(s) (ASIC(s)), programmable logicdevice(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)).When reading any of the apparatus or system claims of this patent tocover a purely software and/or firmware implementation, at least one ofthe example CNN 102, the example retail product tag image database 104,the example feature extractor 106, the example image descriptor database110, the example seed generator 112, the example category signaturegenerator 114, the example feature descriptor generator 118, the exampleclassifier 122, the example retailer ID extractor 126, the examplecategory signature mapper 130, and/or the example category signaturedatabase 132 is/are hereby expressly defined to include a non-transitorycomputer readable storage device or storage disk such as a memory, adigital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc.including the software and/or firmware. Further still, the exampleapparatus 100 of FIGS. 1A and 2 may include one or more elements,processes and/or devices in addition to, or instead of, thoseillustrated in FIGS. 1A and 2, and/or may include more than one of anyor all of the illustrated elements, processes and devices. As usedherein, the phrase “in communication,” including variations thereof,encompasses direct communication and/or indirect communication throughone or more intermediary components, and does not require directphysical (e.g., wired) communication and/or constant communication, butrather additionally includes selective communication at periodicintervals, scheduled intervals, aperiodic intervals, and/or one-timeevents.

A flowchart representative of example machine readable instructions forimplementing the example apparatus 100 in the training mode of FIG. 1Ais shown in FIGS. 3A and 3B, and a flowchart representative of examplemachine readable instructions for implementing the example apparatus 100operating in the recognition mode of FIG. 2 is shown in FIGS. 4A and 4B.The machine readable instructions may be one or more executableprogram(s) or portion(s) of one or more executable program(s) forexecution by a computer processor such as the processor 512 shown in theexample processor platform 500 discussed below in connection with FIG.5. The program(s) may be embodied in software stored on a non-transitorycomputer readable storage medium such as a CD-ROM, a floppy disk, a harddrive, a DVD, a Blu-ray disk, or a memory associated with the processor512, but the entirety of the program(s) and/or parts thereof couldalternatively be executed by a device other than the processor 512and/or embodied in firmware or dedicated hardware. Further, although theexample program(s) is/are described with reference to the flowchartsillustrated in FIGS. 3A, 3B, 4A, and 4B, many other methods ofimplementing the example apparatus 100 in the training mode of FIG. 1Aand the example apparatus 100 in the recognition mode of FIG. 2 mayalternatively be used. For example, the order of execution of the blocksmay be changed, and/or some of the blocks described may be changed,eliminated, or combined. Additionally, or alternatively, any or all ofthe blocks may be implemented by one or more hardware circuits (e.g.,discrete and/or integrated analog and/or digital circuitry, an FPGA, anASIC, a comparator, an operational-amplifier (op-amp), a logic circuit,etc.) structured to perform the corresponding operation withoutexecuting software or firmware.

As mentioned above, the example processes of FIGS. 3A, 3B, 4A, and 4Bmay be implemented using executable instructions (e.g., computer and/ormachine readable instructions) stored on a non-transitory computerand/or machine readable medium such as a hard disk drive, a flashmemory, a read-only memory, a compact disk, a digital versatile disk, acache, a random-access memory and/or any other storage device or storagedisk in which information is stored for any duration (e.g., for extendedtime periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm non-transitory computer readable medium is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media.

The training program of FIGS. 3A and 3B begins at block 302 (FIG. 3A) atwhich the example apparatus 100 selects a retailer category to train theCNN 102 (FIG. 1A) to classify retail product tag images of the selectedretailer category. The example apparatus 100 obtains a retail producttag image of the selected retailer category (block 304). For example,the retailer ID extractor 126 and the feature extractor 106 of FIG. 1Aobtain the retail product tag image from the example retail product tagimage database 104 (FIG. 1A). The example retailer ID extractor 126retrieves metadata from the retail product tag image (block 306). Forexample, the extracted metadata is the retailer ID 128 (FIG. 1A)indicative of the retailer category.

The example feature extractor 106 then determines the features of theretail product tag image (block 308). In some examples, the featureextractor 106 utilizes a convolution operation plus a max poolingoperation to determine the features of the product tag image. In theillustrated example, the operation of block 308 is executed once, twice,or a plurality of times for any number of features that may be presentin the input image. The feature extractor 106 generates an imagedescriptor 108 (FIG. 1A) based on the features (block 310).

The example feature extractor 106 stores the example image descriptor108 in the image descriptor database 110 (block 312). The exampleapparatus 100 determines if there is another retail product tag image ofthe selected retailer category to be analyzed (block 314). For example,the feature extractor 106 or the retailer ID extractor 126 may query theretail product tag image database 104 to determine whether any retailproduct tag images remain to be processed. If there is another retailproduct tag image to process, control returns to block 308. In thismanner, multiple iterations of blocks 308, 310, 312, 314 can beperformed until all or multiple (e.g., a sufficient quantity forsatisfactory training of the CNN 102) of the retail product tag imagesin the retail product tag image database 104 for the selected retailercategory have been processed for training.

Turning to FIG. 3B, the example seed generator 112 generates a seed(block 316). The example category signature generator 114 generates aGaussian probability density function (PDF) 140 (block 318). Forexample, the category signature generator 114 is seeded with the seedgenerated at block 316 to generate a Gaussian distribution of a PDF 140of the image descriptors 108 stored in the image descriptor database 110for the selected retailer category.

The example category signature generator 114 (FIG. 1A) samples theGaussian PDF 140 (block 320). For example, the category signaturegenerator 114 selects n samples from the Gaussian PDF 140 as describedabove in connection with FIG. 1B. The example category signaturegenerator 114 may utilize sampling by random node selection, sampling byrandom edge selection, sampling by exploration, and/or any one or moreof other different types of sampling methods to perform the process ofblock 320. The example category signature generator 114 generates thecategory signature 116 (FIG. 1A) (block 322). For example, the categorysignature generator 114 generates the example category signature 116based on the n samples as an array of size n, where n represents thenumber of samples drawn from the Gaussian PDF 140.

The example category signature mapper 130 maps the category signature116 to the retailer (block 324) of the retailer category. For example,the category signature mapper 130 obtains the generated categorysignature 116 from the category signature generator 114 and obtains theexample retailer ID 128 of the selected retailer category from theexample retailer ID extractor 126. The example category signature mapper130 stores the mapped category signature 116 and the retailer ID 128(block 326) in the example category signature database 132. For example,the category signature mapper 130 stores the category signature 116 inassociation with the retailer ID 128 in a mapping record in the categorysignature database 132.

The example feature descriptor generator 118 (FIG. 1A) generates afeature descriptor 120 (block 328). For example, the example featuredescriptor 120 (FIG. 1A) concatenates the example category signature 116and the example image descriptor 108 to form the feature descriptor 120as an array twice the size of the example image descriptor 108.

The example classifier 122 (FIG. 1A) of the CNN 102 is trained based onthe feature descriptor 120 (block 330). For example, the processor 512(FIG. 5) may train the classifier 122 to output correct probabilitiesvia backpropagation. Backpropagation is used to calculate gradients ofan error with respect to all weights (e.g., the filters used during theconvolution operation) in the apparatus 100 in training mode. Afterbackpropagation of the output probabilities, the weights in the filtersof the classifier 122 are adjusted until the errors corresponding to theweights are reduced to an acceptable minimum error value (e.g., below athreshold). The examples process of FIGS. 3A and 3B then ends.

In some examples, the processes of FIGS. 3A and 3B may be repeated aplurality of times for the same retailer category and/or differentretailer categories. The processes may be repeated a plurality of timesuntil the CNN 102 in training mode has been trained to output acceptableprobabilities (e.g., based on acceptable validation results) for eachclass of each retailer category.

The recognition program of FIGS. 4A and 4B begins at block 404 (FIG. 4A)at which the example apparatus 100 obtains a retail product tag image204 (block 404). For example, the retailer ID extractor 126 and thefeature extractor 106 of FIG. 2 obtain the retail product tag image 204from the example retail product tag image database 104 (FIG. 2).

The example retailer ID extractor 126 obtains a retailer ID (block 406).For example, the retailer ID extractor 126 retrieves a retailer ID asmetadata from the retail product tag image. The retail ID is indicativeof a retailer category for which to obtain a category signature 116 fromthe example category signature database 132. The example featuredescriptor generator 118 obtains the category signature 116 (block 408).For example, the feature descriptor generator 118 obtains the categorysignature 116 from the category signature database 132 based on theretailer ID.

The example feature extractor 106 determines the features of the retailproduct tag image 204 (block 410). In some examples, the featureextractor 106 utilizes the convolution operation plus the poolingoperation to compute the features from the retail product tag image 204.In some examples, this operation is executed once, twice, or a pluralityof times for one or more features that may be present in the retailproduct tag image 204. The example feature extractor 106 generates animage descriptor 216 based on the features (block 412).

The example feature descriptor generator 118 (FIG. 2) generates afeature descriptor 218 (block 414) based on the category signature 116and the image descriptor 216. For example, the feature descriptorgenerator 118 generates the example feature descriptor 218 (FIG. 2) byconcatenating the example category signature 116 with the example imagedescriptor 216. The example feature descriptor 218 (FIG. 2) is an arraytwice the size of the example image descriptor 216.

The example feature descriptor generator 118 stores the featuredescriptor 218 in a memory (block 416). For example, the featuredescriptor generator 118 provides the feature descriptor 218 to a memorythat is accessible by the classifier 122 (FIG. 2). In some examples, thememory is implemented by one or more of the local memory 513, thevolatile memory 514, the non-volatile memory 516, or the mass storage528 of FIG. 5.

The example classifier 122 generates a first probability for a firsttype of promotional product tag (block 418). The example classifiergenerates a second probability for a second type of promotional producttag (block 420). For example, the example classifier 122 outputsprobabilities for two classes, which include a multi-buy retail producttag and a price reduction retail product tag. For example, theclassifier 122 may utilize a logistic regression function as describedabove to determine the probability values.

Based on the probability values from the logistic regression function,the example classifier 122 determines the type of promotional price tagof the retail product tag image (block 422). For example, the exampleclassifier 122 outputs a probability value 210 (FIG. 2) of 0.81 for afirst type of promotional product tag and a probability value 212 (FIG.2) of 0.19 for a second type of promotional product tag. Based on suchexample probabilities, it is most likely that the class of the retailproduct tag image 204 is a first type of promotional product tag,because the output probability of 0.81 of the example first type ofpromotional product tag is closer to the value of 1 than the outputprobability value of 0.19 of the example second type of promotionalproduct tag. The example classifier 122 stores the output results (block424). For example, the classifier 122 stores the probabilities in memoryin association with the retail product tag image and/or in associationwith an identifier (e.g., a file name) of the retail product tag image.The apparatus 100 determines if there is another retail product tagimage to analyze (block 426). For example, the apparatus 100 queries theretail product tag image database 104 for any other retail product tagimage to be analyzed.

If the example apparatus 100 determines that another product tag imageis to be analyzed, control returns to block 404 in FIG. 4A. In thismanner, multiple iterations of blocks 404, 406, 408, 410, 412, 414, 416,418, 420, 422, and 424 can be performed. If another product tag image isnot available to be analyzed, the example report generator 222 (FIG. 2)generates a report based on the classification results (block 428) ofthe analyzed retail product tag images. For example, report generator222 displays the report to a user, who uses the report to determine theprice of a product requested by a customer, updates the product pricesin a retailer sore and/or website, etc.

As mentioned above, the example processes of FIGS. 3A, 3B, 4A, and 4Bmay be implemented using executable instructions (e.g., computer and/ormachine readable instructions) stored on a non-transitory computerand/or machine readable medium such as a hard disk drive, a flashmemory, a read-only memory, a compact disk, a digital versatile disk, acache, a random-access memory and/or any other storage device or storagedisk in which information is stored for any duration (e.g., for extendedtime periods, permanently, for brief instances, for temporarilybuffering and/or for caching of the information). As used herein, theterm non-transitory computer readable medium is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media.

“Including” and “comprising” (and all forms and tenses thereof) are usedherein to be open ended terms. Thus, whenever a claim employs any formof “include” or “comprise” (e.g., comprises, includes, comprising,including, having, etc.) as a preamble or within a claim recitation ofany kind, it is to be understood that additional elements, terms, etc.may be present without falling outside the scope of the correspondingclaim or recitation. As used herein, when the phrase “at least” is usedas the transition term in, for example, a preamble of a claim, it isopen-ended in the same manner as the term “comprising” and “including”are open ended. The term “and/or” when used, for example, in a form suchas A, B, and/or C refers to any combination or subset of A, B, C such as(1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) Bwith C, and (7) A with B and with C. As used herein in the context ofdescribing structures, components, items, objects and/or things, thephrase “at least one of A and B” is intended to refer to implementationsincluding any of (1) at least one A, (2) at least one B, and (3) atleast one A and at least one B. Similarly, as used herein in the contextof describing structures, components, items, objects and/or things, thephrase “at least one of A or B” is intended to refer to implementationsincluding any of (1) at least one A, (2) at least one B, and (3) atleast one A and at least one B. As used herein in the context ofdescribing the performance or execution of processes, instructions,actions, activities and/or steps, the phrase “at least one of A and B”is intended to refer to implementations including any of (1) at leastone A, (2) at least one B, and (3) at least one A and at least one B.Similarly, as used herein in the context of describing the performanceor execution of processes, instructions, actions, activities and/orsteps, the phrase “at least one of A or B” is intended to refer toimplementations including any of (1) at least one A, (2) at least one B,and (3) at least one A and at least one B.

FIG. 5 is a block diagram of an example processor platform 500structured to execute the instructions of FIGS. 3A, 3B, 4A, and 4B toimplement the apparatus 100 of FIGS. 1A and 2. The processor platform500 can be, for example, a server, a personal computer, a workstation, aself-learning machine (e.g., a neural network processor), a mobiledevice (e.g., a cell phone, a smart phone, a tablet such as an iPad™), apersonal digital assistant (PDA), an Internet appliance, a headset orother wearable device, or any other type of computing device.

The processor platform 500 of the illustrated example includes aprocessor 512. The processor 512 of the illustrated example is hardware.For example, the processor 512 can be implemented by one or moreintegrated circuits, logic circuits, microprocessors, GPUs, DSPs, orcontrollers from any desired family or manufacturer. The hardwareprocessor may be a semiconductor based (e.g., silicon based) device. Inthis example, the processor 512 implements the example feature extractor106, the example retailer ID extractor 126, the example seed generator112, the example category signature generator 114, the example categorysignature mapper 130, the example feature descriptor generator 118, theexample classifier 122, and the example report generator 222.

The processor 512 of the illustrated example includes a local memory 513(e.g., a cache). The processor 512 of the illustrated example is incommunication with a main memory including a volatile memory 514 and anon-volatile memory 516 via a bus 518. The volatile memory 514 may beimplemented by Synchronous Dynamic Random Access Memory (SDRAM), DynamicRandom Access Memory (DRAM), RAMBUS® Dynamic Random Access Memory(RDRAM®) and/or any other type of random access memory device. Thenon-volatile memory 516 may be implemented by flash memory and/or anyother desired type of memory device. Access to the main memory 514, 516is controlled by a memory controller.

The processor platform 500 of the illustrated example also includes aninterface circuit 520. The interface circuit 520 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), a Bluetooth® interface, a near fieldcommunication (NFC) interface, and/or a PCI express interface.

In the illustrated example, one or more input devices 522 are connectedto the interface circuit 520. The input device(s) 522 permit(s) a userto enter data and/or commands into the processor 512. The inputdevice(s) can be implemented by, for example, an audio sensor, amicrophone, a camera (still or video), a keyboard, a button, a mouse, atouchscreen, a track-pad, a trackball, isopoint and/or a voicerecognition system.

One or more output devices 524 are also connected to the interfacecircuit 520 of the illustrated example. The output devices 524 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay (LCD), a cathode ray tube display (CRT), an in-place switching(IPS) display, a touchscreen, etc.), a tactile output device, a printerand/or speaker. The interface circuit 520 of the illustrated example,thus, typically includes a graphics driver card, a graphics driver chipand/or a graphics driver processor.

The interface circuit 520 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem, a residential gateway, a wireless access point, and/or a networkinterface to facilitate exchange of data with external machines (e.g.,computing devices of any kind) via a network 526. The communication canbe via, for example, an Ethernet connection, a digital subscriber line(DSL) connection, a telephone line connection, a coaxial cable system, asatellite system, a line-of-site wireless system, a cellular telephonesystem, etc.

The processor platform 500 of the illustrated example also includes oneor more mass storage devices 528 for storing software and/or data.Examples of such mass storage devices 528 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, redundantarray of independent disks (RAID) systems, and digital versatile disk(DVD) drives.

The machine executable instructions 532 of FIGS. 3A-4B may be stored inthe mass storage device 528, in the volatile memory 514, in thenon-volatile memory 516, and/or on a removable non-transitory computerreadable storage medium such as a CD or DVD.

From the foregoing, it will be appreciated that example methods,apparatus and articles of manufacture have been disclosed that improvethe performance of a standard CNN by generating and using a categorysignature as an extra layer of information to help the CNN classify aninputted retail product tag image without needing multiple CNNs fordifferent retailer categories and without needing user-input to identifya retailer category of an input retail product tag image during arecognition phase. In this manner, the disclosed methods, apparatus andarticles of manufacture improve the efficiency of using a computingdevice by significantly reducing the number of CNNs and user-inputsneeded to classify retail product tag images across a plurality ofretailers. The disclosed methods, apparatus and articles of manufactureare accordingly directed to one or more improvement(s) in thefunctioning of a computer.

Example 1 is an apparatus to classify a retail product tag. Theapparatus of Example 1 includes a feature extractor to generate a firstimage descriptor based on a first image of a first retail product tagcorresponding to a first retailer category, the first image descriptorrepresentative of one or more visual features of the first retailproduct tag; a feature descriptor generator to generate a featuredescriptor corresponding to the first retail product tag byconcatenating the first image descriptor and a first category signaturecorresponding to the first retailer category; and a classifier to:generate a first probability value corresponding to a first type ofpromotional product tag and a second probability value corresponding toa second type of promotional product tag based on the featuredescriptor; and determine whether the first retail product tagcorresponds to the first type of promotional product tag or the secondtype of promotional product tag based on the first probability value andthe second probability value.

In Example 2, the subject matter of Example 1 can optionally includethat the first retailer category is representative of a first retailerdifferent from a second retailer that is represented as a secondretailer category.

In Example 3, the subject matter of any one of Examples 1-2 canoptionally include that the image descriptor is a one-dimensional arraythat includes feature values for corresponding features.

In Example 4, the subject matter of any one of Examples 1-3 canoptionally include a retailer identifier extractor to extract retailproduct tag metadata from input image data.

In Example 5, the subject matter of any one of Examples 1-4 canoptionally include a seed generator to generate a seed to generate aGaussian probability density function of a plurality of imagedescriptors corresponding to the first retailer category.

In Example 6, the subject matter of any one of Examples 1-5 canoptionally include that the seed generator is to generate the seedduring a training phase, the training phase to be separate from arecognition phase during which the classifier determines whether thefirst retail product tag corresponds to the first type of promotionalproduct tag or the second type of promotional product tag.

In Example 7, the subject matter of any one of Examples 1-6 canoptionally include a category signature generator to generate the firstcategory signature, the first category signature based on a seed and aplurality of image descriptors corresponding to second retail producttags of the first retailer category.

In Example 8, the subject matter of any one of Examples 1-7 canoptionally include that the feature descriptor is a bit length twice thebit length of the first image descriptor.

In Example 9, the subject matter of any one of Examples 1-8 canoptionally include a category signature mapper to store the firstcategory signature in association with a retailer identifiercorresponding to the first retailer category.

In Example 10, the subject matter of any one of Examples 1-9 canoptionally include that the first type of promotional product tag is amulti-buy promotional product tag, and the second type of promotionalproduct tag is a price reduction promotional product tag.

Example 11 is a non-transitory computer readable storage mediumcomprising instructions that, when executed, cause a processor at least:generate a first image descriptor based on a first image of a firstretail product tag corresponding to a first retailer category, the firstimage descriptor representative of one or more visual features; generatea feature descriptor corresponding to the first retail product tag byconcatenating the first image descriptor and a first category signaturecorresponding to the first retailer category; generate a firstprobability value corresponding to a first type of promotional producttag and a second probability value corresponding to a second type ofpromotional product tag based on the feature descriptor; and determinewhether the first retail product tag corresponds to the first type ofpromotional product tag or the second type of promotional product tagbased on the first probability value and the second probability value.

In Example 12, the subject matter of Example 11 can optionally includethat the instructions, when executed, cause the processor to generate aseed to generate a Gaussian probability density function of a pluralityof image descriptors corresponding to the first retailer category.

In Example 13, the subject matter of any one of Examples 11-12 canoptionally include that the instructions, when executed, cause theprocessor to generate the seed during a training phase, the trainingphase to be separate from a recognition phase during which theclassifier determines whether the first retail product tag correspondsto the first type of promotional product tag or the second type ofpromotional product tag.

In Example 14, the subject matter of any one of Examples 11-13 canoptionally include that the instructions, when executed, cause theprocessor to generate a first category signature based on a seed and aplurality of image descriptors corresponding to second retail producttags of the first retailer category.

In Example 15, the subject matter of any one of Examples 11-14 canoptionally include that the instructions, when executed, cause theprocessor to store in a memory the first category signature inassociation with a retailer identifier corresponding to the firstretailer category.

In Example 16, the subject matter of any one of Examples 11-15 canoptionally include that the instructions, when executed, cause theprocessor to generate feature descriptor as a one-dimensional array thatincludes feature values for corresponding features.

In Example 17, the subject matter of any one of Examples 11-16 canoptionally include that the instructions, when executed, cause theprocessor to generate the feature descriptor as twice the bit length ofthe first image descriptor.

Example 18 is a method that includes generating, by executing aninstruction with a processor, a first image descriptor based on a firstimage of a first retail product tag corresponding to a first retailercategory, the first image descriptor representative of one or morevisual features; generating, by executing an instruction with aprocessor, a feature descriptor corresponding to the first retailproduct tag by concatenating the first image descriptor and a firstcategory signature corresponding to the first retailer category;generating, by executing an instruction with a processor, a firstprobability value corresponding to a first type of promotional producttag and a second probability value corresponding to a second type ofpromotional product tag based on the feature descriptor; anddetermining, by executing an instruction with a processor, whether thefirst retail product tag corresponds to the first type of promotionalproduct tag or the second type of promotional product tag based on thefirst probability value and the second probability value.

In Example 19, the subject matter of Example 18 can optionally includegenerating a seed to generate a Gaussian probability density function ofa plurality of image descriptors corresponding to the first retailercategory.

In Example 20, the subject matter of any one of Examples 18-19 canoptionally include generating the seed during a training phase, thetraining phase to be separate from a recognition phase during which theclassifier determines whether the first retail product tag correspondsto the first type of promotional product tag or the second type ofpromotional product tag.

In Example 21, the subject matter of any one of Examples 18-20 canoptionally include generating a first category signature based on a seedand a plurality of image descriptors corresponding to second retailproduct tags of the first retailer category.

In Example 22, the subject matter of any one of Examples 18-21 canoptionally include storing in a memory a first category signature inassociation with a retailer identifier corresponding to the firstretailer category.

In Example 23, the subject matter of any one of Examples 18-22 canoptionally include that the feature descriptor as a one-dimensionalarray that includes feature values for corresponding features.

In Example 24, the subject matter of any one of Examples 19-23 canoptionally include that the feature descriptor as twice the bit lengthof the first image descriptor.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. An apparatus to classify a retail product tag,the apparatus comprising: a feature extractor to generate a first imagedescriptor based on a first image of a first retail product tagcorresponding to a first retailer category, the first image descriptorrepresentative of one or more visual features of the first retailproduct tag; a feature descriptor generator to generate a featuredescriptor corresponding to the first retail product tag based on thefirst image descriptor and a first category signature corresponding tothe first retailer category, wherein the feature descriptor is at leasttwice a bit length of the first image descriptor; and a classifier to:generate a first probability value corresponding to a first type ofpromotional product tag and a second probability value corresponding toa second type of promotional product tag based on the featuredescriptor; and determine whether the first retail product tagcorresponds to the first type of promotional product tag or the secondtype of promotional product tag based on the first probability value andthe second probability value.
 2. The apparatus as defined in claim 1,wherein the first retailer category is representative of a firstretailer different from a second retailer that is represented as asecond retailer category.
 3. The apparatus as defined in claim 1,wherein the image descriptor is a one-dimensional array that includesfeature values for corresponding features.
 4. The apparatus as definedin claim 1, further including a retailer identifier extractor to extractretail product tag metadata from input image data.
 5. The apparatus asdefined in claim 1, further including a seed generator to generate aseed for use in generating the first category signature corresponding tothe first retailer category.
 6. The apparatus as defined in claim 5,wherein the seed generator is to generate the seed during a trainingphase, the training phase to be separate from a recognition phase, theclassifier to determine, during the recognition phase, whether the firstretail product tag corresponds to the first type of promotional producttag or the second type of promotional product tag.
 7. The apparatus asdefined in claim 6, further including a category signature generator togenerate the first category signature, the first category signaturebased on the seed and a plurality of image descriptors corresponding tosecond retail product tags of the first retailer category.
 8. Theapparatus as defined in claim 1, further including a category signaturemapper to store the first category signature in association with aretailer identifier corresponding to the first retailer category.
 9. Theapparatus of claim 1, wherein the feature descriptor generator is togenerate the feature descriptor by concatenating the first imagedescriptor and the first category signature.
 10. An apparatus toclassify a retail product tag, the apparatus comprising: a featureextractor to generate a first image descriptor based on a first image ofa first retail product tag corresponding to a first retailer category,the first image descriptor representative of one or more visual featuresof the first retail product tag; a feature descriptor generator togenerate a feature descriptor corresponding to the first retail producttag based on the first image descriptor and a first category signaturecorresponding to the first retailer category; and a classifier to:generate a first probability value corresponding to a first type ofpromotional product tag and a second probability value corresponding toa second type of promotional product tag based on the featuredescriptor, wherein the first type of promotional product tag is amulti-buy promotional product tag, and the second type of promotionalproduct tag is a price reduction promotional product tag; and determinewhether the first retail product tag corresponds to the first type ofpromotional product tag or the second type of promotional product tagbased on the first probability value and the second probability value.11. A non-transitory computer readable storage medium comprisinginstructions that, when executed, cause a processor to at least:generate a first image descriptor based on a first image of a firstretail product tag corresponding to a first retailer category, the firstimage descriptor representative of one or more visual features; generatea feature descriptor corresponding to the first retail product tag basedon the first image descriptor and a first category signaturecorresponding to the first retailer category, wherein the featuredescriptor is at least twice a bit length of the first image descriptor;generate a first probability value corresponding to a first type ofpromotional product tag and a second probability value corresponding toa second type of promotional product tag based on the featuredescriptor; and determine whether the first retail product tagcorresponds to the first type of promotional product tag or the secondtype of promotional product tag based on the first probability value andthe second probability value.
 12. The non-transitory computer readablestorage medium as defined in claim 11, wherein the instructions, whenexecuted, cause the processor to generate a seed for use in generatingthe first category signature corresponding to the first retailercategory.
 13. The non-transitory computer readable storage medium asdefined in claim 12, wherein the instructions, when executed, cause theprocessor to generate the seed during a training phase, the trainingphase to be separate from a recognition phase, the instructions to causethe processor to determine, during the recognition phase, whether thefirst retail product tag corresponds to the first type of promotionalproduct tag or the second type of promotional product tag.
 14. Thenon-transitory computer readable storage medium as defined in claim 13,wherein the instructions, when executed, cause the processor to generatethe first category signature based on the seed and a plurality of imagedescriptors corresponding to second retail product tags of the firstretailer category.
 15. The non-transitory computer readable storagemedium as defined in claim 11, wherein the instructions, when executed,cause the processor to store in a memory the first category signature inassociation with a retailer identifier corresponding to the firstretailer category.
 16. The non-transitory computer readable storagemedium as defined in claim 11, wherein the instructions, when executed,cause the processor to generate the feature descriptor as aone-dimensional array that includes feature values for correspondingfeatures.
 17. The non-transitory computer readable storage medium asdefined in claim 11, wherein the instructions, when executed, cause theprocessor to generate the feature descriptor by concatenating the firstimage descriptor and the first category signature.
 18. A methodcomprising: generating, by executing an instruction with a processor, afirst image descriptor based on a first image of a first retail producttag corresponding to a first retailer category, the first imagedescriptor representative of one or more visual features; generating, byexecuting an instruction with a processor, a feature descriptorcorresponding to the first retail product tag based on the first imagedescriptor and a first category signature corresponding to the firstretailer category, wherein the feature descriptor is at least twice abit length of the first image descriptor; generating, by executing aninstruction with a processor, a first probability value corresponding toa first type of promotional product tag and a second probability valuecorresponding to a second type of promotional product tag based on thefeature descriptor; and determining, by executing an instruction with aprocessor, whether the first retail product tag corresponds to the firsttype of promotional product tag or the second type of promotionalproduct tag based on the first probability value and the secondprobability value.
 19. The method as defined in claim 18, furtherincluding generating a seed for use in generating the first categorysignature corresponding to the first retailer category.
 20. The methodas defined in claim 19, further including generating the seed during atraining phase, the training phase to be separate from a recognitionphase, the determining of whether the first retail product tagcorresponds to the first type of promotional product tag or the secondtype of promotional product tag to be performed during the recognitionphase.
 21. The method as defined in claim 20, further includinggenerating the first category signature based on the seed and aplurality of image descriptors corresponding to second retail producttags of the first retailer category.
 22. The method as defined in claim18, further including storing in a memory a first category signature inassociation with a retailer identifier corresponding to the firstretailer category.
 23. The method as defined in claim 18, wherein thefeature descriptor is a one-dimensional array that includes featurevalues for corresponding features.
 24. The method of claim 18, whereinthe generating of the feature descriptor includes concatenating thefirst image descriptor and the first category signature.
 25. Anon-transitory computer readable storage medium comprising instructionsthat, when executed, cause a processor to at least: generate a firstimage descriptor based on a first image of a first retail product tagcorresponding to a first retailer category, the first image descriptorrepresentative of one or more visual features; generate a featuredescriptor corresponding to the first retail product tag based on thefirst image descriptor and a first category signature corresponding tothe first retailer category; generate a first probability valuecorresponding to a first type of promotional product tag and a secondprobability value corresponding to a second type of promotional producttag based on the feature descriptor, wherein the first type ofpromotional product tag is a multi-buy promotional product tag, and thesecond type of promotional product tag is a price reduction promotionalproduct tag; and determine whether the first retail product tagcorresponds to the first type of promotional product tag or the secondtype of promotional product tag based on the first probability value andthe second probability value.
 26. A method comprising: generating, byexecuting an instruction with a processor, a first image descriptorbased on a first image of a first retail product tag corresponding to afirst retailer category, the first image descriptor representative ofone or more visual features; generating, by executing an instructionwith a processor, a feature descriptor corresponding to the first retailproduct tag based on the first image descriptor and a first categorysignature corresponding to the first retailer category; generating, byexecuting an instruction with a processor, a first probability valuecorresponding to a first type of promotional product tag and a secondprobability value corresponding to a second type of promotional producttag based on the feature descriptor, wherein the first type ofpromotional product tag is a multi-buy promotional product tag, and thesecond type of promotional product tag is a price reduction promotionalproduct tag; and determining, by executing an instruction with aprocessor, whether the first retail product tag corresponds to the firsttype of promotional product tag or the second type of promotionalproduct tag based on the first probability value and the secondprobability value.